package com.ruicar.afs.cloud.afscase.monitor.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @Description
 * @Author Peng Jinbo
 * @Date 2020/09/19 12:40
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PersonalMonitorVO {

    public PersonalMonitorVO(PersonalMonitorVO ori){
        this.loginName = ori.getLoginName();
        this.realName = ori.getRealName();
        this.postStatus = ori.getPostStatus();
        this.jobPosition = ori.getJobPosition();
    }

    /**
     * Business type
     * 业务类型
     */
    private String businessType;

    /**
     * Login name
     * 登录名
     */
    private String loginName;

    /**
     * Real name
     * 真实姓名
     */
    private String realName;

    /**
     * Job position
     * 岗位
     */
    private String jobPosition;

    /**
     * Post status
     * 在岗状态 yes no
     */
    private String postStatus;

    /**
     * Total
     * 总计
     */
    private Set<String> total = new HashSet<>();

    /**
     * Num wait check
     * 截止目前审批待办 待审核
     */
    private Set<String> numWaitCheck = new HashSet<>();

    /**
     * Num parse
     * 截止目前审批待办 暂停
     */
    private Set<String> numParse = new HashSet<>();

    /**
     * Num revise reply
     * 截止目前审批待办 修订回复
     */
    private Set<String> numReviseReply = new HashSet<>();

    /**
     * Num check
     * 截止目前审批待办 建议核准
     */
    private Set<String> numCheck = new HashSet<>();

    /**
     * Num reject
     * 截止目前审批待办 建议拒绝
     */
    private Set<String> numReject = new HashSet<>();

    /**
     * Num condition
     * 截止目前审批待办 建议附条件核准
     */
    private Set<String> numCondition = new HashSet<>();

    /**
     * Num callback
     * 截止目前审批待办 撤回
     */
    private Set<String> numCallback = new HashSet<>();

    /**
     * Today num assert change
     * 截止目前审批待办中资产变更
     */
    private Set<String> numAssertChange = new HashSet<>();

    /**
     * Today num fraud inspect
     * 截止目前审批待办中欺诈调查
     */
    private Set<String> numFraudInspect = new HashSet<>();

    /**
     * Today num repertory overdue
     * 截止目前审批待办中库存超期
     */
    private Set<String> numRepertoryOverdue = new HashSet<>();

    /**
     * Today num review
     * 截止目前审批待办中复议
     */
    private Set<String> numReview = new HashSet<>();

    /**
     * Today num revise parse
     * 今日处理过的修订暂停数量
     */
    private Set<String> todayNumReviseParse = new HashSet<>();

    /**
     * Today num process
     * 今日已处理 ： 截止当前出结果数+修订暂停数+已处理的资产变更+已处理的欺诈调查+已处理库存超期+已处理复议
     * （申请编号可重复）
     */
    private List<String> todayNumProcess = new ArrayList<>();

    /**
     * Today num already check final
     * 今日出结果并且为核准案件
     */
    private Set<String> todayNumAlreadyCheckFinal= new HashSet<>();

    /**
     * Today num already condition final
     * 今日出结果并且为附条件核准案件
     */
    private Set<String> todayNumAlreadyConditionFinal= new HashSet<>();

    /**
     * Today num already reject final
     * 今日出结果并拒绝案件
     */
    private Set<String> todayNumAlreadyRejectFinal= new HashSet<>();

    /**
     * Today num already end
     * 今日出结果数量
     */
    private Set<String> todayNumAlreadyEnd = new HashSet<>();

    /**
     * Aging avg
     * 平均时效 = 当日经手案件时效总和 / 当日处理案件数量
     * TODO 注意: 当前字段需案件时效完成后才能统计，此项字段涉及页面其他逻辑,略复杂,具体详情需咨询客户
     */
    private BigDecimal agingAvg;


}
